package com.bdqn;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

public class ConfigManager {
    //示例1
/*    private static Properties properties;
    //杜绝了外界创建该类对象，私有构造方法。
    public ConfigManager() {
        String configFile = "database.properties";
        properties = new Properties();
        //得到当前类的加载器并将配置文件加载到输入流中。
        InputStream is = ConfigManager.class.getClassLoader().getResourceAsStream(configFile);
        try {
            //从输入流中读取属性列表
            properties.load(is);
            is.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }*/
//示例2
 /*   private static Properties properties;
    private static ConfigManager configManager=null;
    //杜绝了外界创建该类对象，私有构造方法。
    public ConfigManager() {
        String configFile = "database.properties";
        properties = new Properties();
        //得到当前类的加载器并将配置文件加载到输入流中。
        InputStream is = ConfigManager.class.getClassLoader().getResourceAsStream(configFile);
        try {
            //从输入流中读取属性列表
            properties.load(is);
            is.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }*/
    //示例3
 /*   private static Properties properties;
    private static ConfigManager configManager=null;
    //杜绝了外界创建该类对象，私有构造方法。
    public ConfigManager() {
        String configFile = "database.properties";
        properties = new Properties();
        //得到当前类的加载器并将配置文件加载到输入流中。
        InputStream is = ConfigManager.class.getClassLoader().getResourceAsStream(configFile);
        try {
            //从输入流中读取属性列表
            properties.load(is);
            is.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    // 对外提供的获得ConfigManager实列的方法
    public static ConfigManager getInstance() {
        if(configManager==null) {
            configManager = new ConfigManager();
        }
        return configManager;
    }*/
    //示例4
/*    private static Properties properties;
    private static ConfigManager configManager=null;
    //杜绝了外界创建该类对象，私有构造方法。
    public ConfigManager() {
        String configFile = "database.properties";
        properties = new Properties();
        //得到当前类的加载器并将配置文件加载到输入流中。
        InputStream is = ConfigManager.class.getClassLoader().getResourceAsStream(configFile);
        try {
            //从输入流中读取属性列表
            properties.load(is);
            is.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    // 对外提供的获得ConfigManager实列的方法
    public static ConfigManager getInstance() {
        if(configManager==null) {
            configManager = new ConfigManager();
        }
        return configManager;
    }
    public String getValue(String key) {
        return properties.getProperty(key);
    }*/

    //示例7
    private static Properties properties;
    private static ConfigManager configManager=null;
    //杜绝了外界创建该类对象，私有构造方法。
    public ConfigManager() {
        String configFile = "database.properties";//配置文件路径
        properties = new Properties();
        //得到当前类的加载器并将配置文件加载到输入流中。
        InputStream is = ConfigManager.class.getClassLoader().getResourceAsStream(configFile);
        try {
            //从输入流中读取属性列表
            properties.load(is);
            is.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    // 饿汉模式
    public static ConfigManager getInstance() {
        return configManager;
    }
    public String getValue(String key) {
        return properties.getProperty(key);
    }
}
